package com.hex.liyue.usermodule.presenter;

import com.hex.liyue.commonmodule.listener.EMLoginListener;
import com.hex.liyue.commonmodule.manager.HttpManager;
import com.hex.liyue.commonmodule.manager.UserManager;
import com.hex.liyue.commonmodule.net.ResponseListener;
import com.hex.liyue.commonmodule.utils.EMUtils;
import com.hex.liyue.commonmodule.utils.L;
import com.hex.liyue.usermodule.bean.LoginResultBean;
import com.hyphenate.chat.EMClient;

/**
 * 这是一个登录界面的业务的界面
 * Created by yukoyuan on 16/6/13.
 */
public class LoginPresenter {
    ILoginView iLoginView;

    public LoginPresenter(ILoginView iLoginView) {
        this.iLoginView = iLoginView;
    }

    //这是一个登录的方法
    public void login() {
        iLoginView.showLod("请求中...");
        HttpManager.getInstance().login(iLoginView.getPhone(), iLoginView.getPwd(), new ResponseListener<LoginResultBean>() {
            @Override
            public void onSuccess(LoginResultBean loginResultBean) {
                UserManager.saveUserInfo(loginResultBean);
                //登录环信
                loginEM(loginResultBean.data.hx_id);
            }


            @Override
            public void onFailure(String responseresult) {
                iLoginView.showT(responseresult);
                iLoginView.closeLod();
            }
        });
    }

    //登录环信的方法
    private void loginEM(String username) {
        EMUtils.login(username, new EMLoginListener() {
            @Override
            public void onSuccess() {
                EMClient.getInstance().groupManager().loadAllGroups();
                EMClient.getInstance().chatManager().loadAllConversations();

                L.d("main", "登录聊天服务器成功！");
                UserManager.setIsLogin(true);
                iLoginView.startMainActivity();
                iLoginView.closeLod();
//                iLoginView.showT("登录聊天服务器成功！");
            }

            @Override
            public void onFailure() {
                L.d("main", "登录聊天服务器失败！");
                iLoginView.closeLod();
                iLoginView.showT("登陆聊天服务器失败！");
            }
        });
    }
}
